home *** CD-ROM | disk | FTP | other *** search
- ' Program EX_0804.BAS
- ' Listing 16B - see documentation in TUTOR.SSS
-
- const ARRIVL = 1, STARTA = 2, ENDACT = 3, NEXTAC = 4
- const TIMEL = 150
-
- common shared n, server, ecode, a1$, b$, c$
-
- declare sub prime ()
- declare sub annonc ()
-
- rem $include: 'SSSB.H'
-
- call prime
-
- do
- ecode = NEXTEV
- if ecode > 0 then
- select case ecode
-
- case ARRIVL
- n = n + 1
- CREATE EX(1), n
- SCHED 0, NEXTAC, IDE
-
- case NEXTAC
- if server > 0 then
- SCHED 0, STARTA, IDE
- else
- QUEUE 1, 0
- annonc
- end if
-
- case STARTA
- SCHED EX(.9), ENDACT, IDE
- server = server - 1
-
- case ENDACT
- DISPOS
- server = server + 1
- if NQ(1) > 0 then
- REMVFQ 1, 1
- SCHED 0, STARTA, IDE
- annonc
- end if
-
- end select
- end if
- loop while ecode > 0
-
- end
-
- sub annonc
- print #1, using a1$; T; NQ(1); QAVG(1); QSTD(1)
- print using b$; T; NQ(1); QAVG(1);
- print using c$; QSTD(1)
- end sub
-
- sub prime
- a1$ = "####.## ### ##.# ##.##"
- b$ = "At ####.## q-size incr to:### ave q=##.#"
- c$ = " std q=##.##"
- n = 0
- server = 1
- INIQUE 1, 0, 0
- CREATE 0, n
- SIMEND TIMEL
- open "EX_0804.DAT" for output as #1
- end sub